package com.xbongbong.saas.domain.entity;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.toolbox.util.DateTimeUtil;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;

/**
 * @author WangJian
 * @date  2019-01-25 10:58
 **/
@Getter
@Setter
@ToString
public class InstockProductEntity extends BusinessUnitProductEntity implements Serializable{
    private static final long serialVersionUID = -7039595972032971606L;

    /**
     * 主键
     */
    private Long id;
    /**
     * 公司id
     */
    private String corpid;
    /**
     * 入库单id
     */
    private Long intoWarehouseId;
    /**
     * 产品id
     */
    private Long parentId;
    /**
     * 产品id
     */
    private Long productId;
    /**
     * 产品名称
     */
    private String productName;
    /**
     * 产品编号
     */
    private String productNo;
    /**
     * 产品规格
     */
    private String productSpecification;
    /**
     * 产品数量
     */
    private Double productNum;
    /**
     * 产品单位
     */
    private String productUnit;
    /**
     * 产品价格
     */
    private Double productPrice;
    /**
     * 添加时间
     */
    private Long addTime;
    /**
     * 更新时间
     */
    private Long updateTime;
    /**
     * 删除标志
     */
    private Integer del;
    /**
     * 产品成本
     */
    private Double cost;
    /**
     * 仓库id
     */
    private Long warehouseId;
    /**
     * 仓库名称
     */
    private String warehouseName;
    /**
     * 产品图片地址
     */
    private String imageUrl;
    /**
     * 扩展字段：分类id
     */
    private Long categoryId;
    /**
     * 分类名称
     */
    private String categoryName;
    /**
     * 产品条码
     */
    private String barcode;
    /**
     * 用于更新单据关联产品时给更改仓库库存时使用，扩展字段
     */
    private Double changeNum;
    /**
     * 产品封面图
     */
    private String thumbnail;
    /**
     * 批次（用于查询该批次产品数量）
     */
    private String batch;

    /**
     * 成品入库总成本
     */
    private Double costSum;
    /**
     * 产品排序
     */
    private Integer sort;
    /**
     * 生产日期
     */
    private Long produceDate;
    /**
     * 保质期
     */
    private Long guaranteePeriod;
    /**
     * 备注
     */
    private String memo;
    /**
     * 表单数据存储json，mysql 5.7 开始支持该格式，并支持检索
     */
    private JSONObject data;
    /**
     * 产品图片
     */
    private JSONArray imageUrlArray;
    /**
     * 上游关联产品数据id
     */
    private Long refProductId;

    private Double outstockNum;
    /**
     * 单据类型
     */
    private Integer type;

    /**
     * 上游单据id
     */
    private Long refId;

    /**
     * 表单id
     */
    private Long formId;

    /**
     * 转换用的num
     */
    private Double transferNum;

    /**
     * 目前仅用于销售退货入库单价
     */
    private Double price;

    /**
     * 产品删除
     */
    private Integer productDel;
    /**
     * 仓库删除
     */
    private Integer warehouseDel;

    public InstockProductEntity() {
        this.del = 0;
        this.addTime = DateTimeUtil.getInt();
        this.updateTime = DateTimeUtil.getInt();
        this.outstockNum = 0D;
        this.price = 0D;
        this.warehouseDel = 0;
        this.productDel = 0;
    }
}
